+++ /dev/null
-#
-# Copyright (C) 2014 Arduino LLC
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NPM_NAME:=arduino-firmata
-PKG_NAME:=node-$(PKG_NPM_NAME)
-PKG_VERSION:=0.3.4
-PKG_RELEASE:=4
-
-PKG_SOURCE:=$(PKG_NPM_NAME)-$(PKG_VERSION).tgz
-PKG_SOURCE_URL:=https://registry.npmjs.org/$(PKG_NPM_NAME)/-/
-PKG_HASH:=d7157e02867eae82887cb5e17b90c963fe7489bacd464110bfd20c672b8d5a98
-
-PKG_BUILD_DEPENDS:=node/host
-PKG_BUILD_FLAGS:=no-mips16
-PKG_BUILD_PARALLEL:=0
-
-PKG_LICENSE:=MIT
-PKG_LICENSE_FILES:=LICENSE.txt
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/node-arduino-firmata
- SUBMENU:=Node.js
- SECTION:=lang
- CATEGORY:=Languages
- TITLE:=Arduino Firmata implementation for Node.js
- URL:=https://www.npmjs.com/package/arduino-firmata
- DEPENDS:=+node +node-npm +node-serialport
-endef
-
-define Package/node-arduino-firmata/description
- Arduino Firmata protocol (http://firmata.org) implementation on Node.js.
-endef
-
-TAR_OPTIONS+= --strip-components 1
-TAR_CMD=$(HOST_TAR) -C $(1) $(TAR_OPTIONS)
-
-NODEJS_CPU:=$(subst powerpc,ppc,$(subst aarch64,arm64,$(subst x86_64,x64,$(subst i386,ia32,$(ARCH)))))
-TMPNPM:=$(shell mktemp -u XXXXXXXXXX)
-
-TARGET_CFLAGS+=$(FPIC)
-TARGET_CPPFLAGS+=$(FPIC)
-
-NPM_FLAGS:= \
- $(MAKE_VARS) \
- $(MAKE_FLAGS) \
- npm_config_arch=$(NODEJS_CPU) \
- npm_config_target_arch=$(NODEJS_CPU) \
- npm_config_build_from_source=true \
- npm_config_nodedir=$(STAGING_DIR)/usr/ \
- npm_config_prefix=$(PKG_INSTALL_DIR)/usr/ \
- npm_config_cache=$(TMP_DIR)/npm-cache-$(TMPNPM) \
- npm_config_tmp=$(TMP_DIR)/npm-tmp-$(TMPNPM)
-
-define Build/Compile
- $(NPM_FLAGS) npm i -g --production $(PKG_BUILD_DIR)
- $(NPM_FLAGS) npm i --production --prefix=$(PKG_BUILD_DIR) --target_arch=$(NODEJS_CPU) --prefer-dedupe
- rm -rf $(TMP_DIR)/npm-tmp-$(TMPNPM)
- rm -rf $(TMP_DIR)/npm-cache-$(TMPNPM)
-endef
-
-define Package/node-arduino-firmata/install
- $(INSTALL_DIR) $(1)/usr/lib/node/$(PKG_NPM_NAME)
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/$(PKG_NPM_NAME)/{package.json,README.md} \
- $(1)/usr/lib/node/$(PKG_NPM_NAME)/
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/$(PKG_NPM_NAME)/{tests,*.txt} \
- $(1)/usr/lib/node/$(PKG_NPM_NAME)/
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/$(PKG_NPM_NAME)/{node_modules,lib} \
- $(1)/usr/lib/node/$(PKG_NPM_NAME)/
- $(CP) ./files/* $(1)/
-endef
-
-$(eval $(call BuildPackage,node-arduino-firmata))
+++ /dev/null
-(function() {
- 'use strict';
- var ArduinoFirmata, debug, events, exports, serialport;
-
- events = require('eventemitter2');
-
- serialport = require('serialport');
-
- debug = require('debug')('arduino-firmata');
-
- exports = module.exports = ArduinoFirmata = (function() {
- class ArduinoFirmata extends events.EventEmitter2 {
- static list(callback) {
- return serialport.list(function(err, ports) {
- var devices, j, len, port;
- if (err) {
- return callback(err);
- }
- devices = [];
- for (j = 0, len = ports.length; j < len; j++) {
- port = ports[j];
- if (/usb|acm|com|ama\d+/i.test(port.comName)) {
- devices.push(port.comName);
- }
- }
- return callback(null, devices);
- });
- }
-
- constructor() {
- super();
- this.status = ArduinoFirmata.Status.CLOSE;
- this.wait_for_data = 0;
- this.execute_multi_byte_command = 0;
- this.multi_byte_channel = 0;
- this.stored_input_data = [];
- this.parsing_sysex = false;
- this.sysex_bytes_read = 0;
- this.digital_output_data = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
- this.digital_input_data = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
- this.analog_input_data = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
- this.boardVersion = null;
- }
-
- isOldArduinoDevice() {
- return /usbserial|USB/.test(this.serialport_name);
- }
-
- connect(serialport_name, opts = {
- baudRate: 57600
- }) {
- this.serialport_name = serialport_name;
- opts.parser = serialport.parsers.raw;
- if (!this.serialport_name) {
- ArduinoFirmata.list((err, devices) => {
- return this.connect(devices[0], opts);
- });
- return this;
- }
- this.once('boardReady', function() {
- var io_init_wait;
- debug('boardReady');
- io_init_wait = this.isOldArduinoDevice() ? (debug(`old arduino device found ${this.serialport_name}`), 3000) : (debug(`new arduino device found ${this.serialport_name}`), 100);
- debug(`wait ${io_init_wait}(msec)`);
- return setTimeout(() => {
- var i, j, k;
- for (i = j = 0; j < 6; i = ++j) {
- this.write([ArduinoFirmata.REPORT_ANALOG | i, 1]);
- }
- for (i = k = 0; k < 2; i = ++k) {
- this.write([ArduinoFirmata.REPORT_DIGITAL | i, 1]);
- }
- debug('init IO ports');
- return this.emit('connect');
- }, io_init_wait);
- });
- this.serialport = new serialport(this.serialport_name, opts);
- this.serialport.once('open', () => {
- var cid;
- cid = setInterval(() => {
- debug('request REPORT_VERSION');
- return this.write([ArduinoFirmata.REPORT_VERSION]);
- }, 500);
- this.once('boardVersion', (version) => {
- clearInterval(cid);
- this.status = ArduinoFirmata.Status.OPEN;
- return this.emit('boardReady');
- });
- return this.serialport.on('data', (data) => {
- var byte, j, len, results;
- results = [];
- for (j = 0, len = data.length; j < len; j++) {
- byte = data[j];
- results.push(this.process_input(byte));
- }
- return results;
- });
- });
- return this;
- }
-
- isOpen() {
- return this.status === ArduinoFirmata.Status.OPEN;
- }
-
- close(callback) {
- this.status = ArduinoFirmata.Status.CLOSE;
- return this.serialport.close(callback);
- }
-
- reset(callback) {
- return this.write([ArduinoFirmata.SYSTEM_RESET], callback);
- }
-
- write(bytes, callback) {
- return this.serialport.write(bytes, callback);
- }
-
- sysex(command, data = [], callback) {
- var write_data;
- //# http://firmata.org/wiki/V2.1ProtocolDetails#Sysex_Message_Format
- data = data.map(function(i) {
- return i & 0b1111111; // 7bit
- });
- write_data = [ArduinoFirmata.START_SYSEX, command].concat(data, [ArduinoFirmata.END_SYSEX]);
- return this.write(write_data, callback);
- }
-
- pinMode(pin, mode, callback) {
- switch (mode) {
- case true:
- mode = ArduinoFirmata.OUTPUT;
- break;
- case false:
- mode = ArduinoFirmata.INPUT;
- }
- return this.write([ArduinoFirmata.SET_PIN_MODE, pin, mode], callback);
- }
-
- digitalWrite(pin, value, callback) {
- var port_num;
- this.pinMode(pin, ArduinoFirmata.OUTPUT);
- port_num = (pin >>> 3) & 0x0F;
- if (value === 0 || value === false) {
- this.digital_output_data[port_num] &= ~(1 << (pin & 0x07));
- } else {
- this.digital_output_data[port_num] |= 1 << (pin & 0x07);
- }
- return this.write([ArduinoFirmata.DIGITAL_MESSAGE | port_num, this.digital_output_data[port_num] & 0x7F, this.digital_output_data[port_num] >>> 7], callback);
- }
-
- analogWrite(pin, value, callback) {
- value = Math.floor(value);
- this.pinMode(pin, ArduinoFirmata.PWM);
- return this.write([ArduinoFirmata.ANALOG_MESSAGE | (pin & 0x0F), value & 0x7F, value >>> 7], callback);
- }
-
- servoWrite(pin, angle, callback) {
- this.pinMode(pin, ArduinoFirmata.SERVO);
- return this.write([ArduinoFirmata.ANALOG_MESSAGE | (pin & 0x0F), angle & 0x7F, angle >>> 7], callback);
- }
-
- digitalRead(pin) {
- return ((this.digital_input_data[pin >>> 3] >>> (pin & 0x07)) & 0x01) > 0;
- }
-
- analogRead(pin) {
- return this.analog_input_data[pin];
- }
-
- process_input(input_data) {
- var analog_value, command, diff, i, j, old_analog_value, results, stat, sysex_command, sysex_data;
- if (this.parsing_sysex) {
- if (input_data === ArduinoFirmata.END_SYSEX) {
- this.parsing_sysex = false;
- sysex_command = this.stored_input_data[0];
- sysex_data = this.stored_input_data.slice(1, this.sysex_bytes_read);
- return this.emit('sysex', {
- command: sysex_command,
- data: sysex_data
- });
- } else {
- this.stored_input_data[this.sysex_bytes_read] = input_data;
- return this.sysex_bytes_read += 1;
- }
- } else if (this.wait_for_data > 0 && input_data < 128) {
- this.wait_for_data -= 1;
- this.stored_input_data[this.wait_for_data] = input_data;
- if (this.execute_multi_byte_command !== 0 && this.wait_for_data === 0) {
- switch (this.execute_multi_byte_command) {
- case ArduinoFirmata.DIGITAL_MESSAGE:
- input_data = (this.stored_input_data[0] << 7) + this.stored_input_data[1];
- diff = this.digital_input_data[this.multi_byte_channel] ^ input_data;
- this.digital_input_data[this.multi_byte_channel] = input_data;
- if (this.listeners('digitalChange').length > 0) {
- results = [];
- for (i = j = 0; j <= 13; i = ++j) {
- if (((0x01 << i) & diff) > 0) {
- stat = (input_data & diff) > 0;
- results.push(this.emit('digitalChange', {
- pin: i + this.multi_byte_channel * 8,
- value: stat,
- old_value: !stat
- }));
- } else {
- results.push(void 0);
- }
- }
- return results;
- }
- break;
- case ArduinoFirmata.ANALOG_MESSAGE:
- analog_value = (this.stored_input_data[0] << 7) + this.stored_input_data[1];
- old_analog_value = this.analogRead(this.multi_byte_channel);
- this.analog_input_data[this.multi_byte_channel] = analog_value;
- if (old_analog_value !== analog_value) {
- return this.emit('analogChange', {
- pin: this.multi_byte_channel,
- value: analog_value,
- old_value: old_analog_value
- });
- }
- break;
- case ArduinoFirmata.REPORT_VERSION:
- this.boardVersion = `${this.stored_input_data[1]}.${this.stored_input_data[0]}`;
- return this.emit('boardVersion', this.boardVersion);
- }
- }
- } else {
- if (input_data < 0xF0) {
- command = input_data & 0xF0;
- this.multi_byte_channel = input_data & 0x0F;
- } else {
- command = input_data;
- }
- if (command === ArduinoFirmata.START_SYSEX) {
- this.parsing_sysex = true;
- return this.sysex_bytes_read = 0;
- } else if (command === ArduinoFirmata.DIGITAL_MESSAGE || command === ArduinoFirmata.ANALOG_MESSAGE || command === ArduinoFirmata.REPORT_VERSION) {
- this.wait_for_data = 2;
- return this.execute_multi_byte_command = command;
- }
- }
- }
-
- };
-
- ArduinoFirmata.Status = {
- CLOSE: 0,
- OPEN: 1
- };
-
- ArduinoFirmata.INPUT = 0;
-
- ArduinoFirmata.OUTPUT = 1;
-
- ArduinoFirmata.ANALOG = 2;
-
- ArduinoFirmata.PWM = 3;
-
- ArduinoFirmata.SERVO = 4;
-
- ArduinoFirmata.SHIFT = 5;
-
- ArduinoFirmata.I2C = 6;
-
- ArduinoFirmata.LOW = 0;
-
- ArduinoFirmata.HIGH = 1;
-
- ArduinoFirmata.MAX_DATA_BYTES = 32;
-
- ArduinoFirmata.DIGITAL_MESSAGE = 0x90; // send data for a digital port
-
- ArduinoFirmata.ANALOG_MESSAGE = 0xE0; // send data for an analog pin (or PWM)
-
- ArduinoFirmata.REPORT_ANALOG = 0xC0; // enable analog input by pin
-
- ArduinoFirmata.REPORT_DIGITAL = 0xD0; // enable digital input by port
-
- ArduinoFirmata.SET_PIN_MODE = 0xF4; // set a pin to INPUT/OUTPUT/PWM/etc
-
- ArduinoFirmata.REPORT_VERSION = 0xF9; // report firmware version
-
- ArduinoFirmata.SYSTEM_RESET = 0xFF; // reset from MIDI
-
- ArduinoFirmata.START_SYSEX = 0xF0; // start a MIDI SysEx message
-
- ArduinoFirmata.END_SYSEX = 0xF7; // end a MIDI SysEx message
-
- return ArduinoFirmata;
-
- }).call(this);
-
-}).call(this);
+++ /dev/null
---- a/package.json
-+++ b/package.json
-@@ -30,7 +30,6 @@
- "license": "MIT",
- "dependencies": {
-- "serialport": "*",
- "eventemitter2": "*",
- "debug": "*"
- },
+++ /dev/null
-#
-# Copyright (C) 2014 Arduino LLC
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NPM_NAME:=cylon
-PKG_NAME:=node-$(PKG_NPM_NAME)
-PKG_SRC_NAME:=$(PKG_NPM_NAME)-firmata
-PKG_VERSION:=0.24.0
-PKG_RELEASE:=4
-
-PKG_SOURCE:=$(PKG_SRC_NAME)-$(PKG_VERSION).tgz
-PKG_SOURCE_URL:=https://registry.npmjs.org/$(PKG_SRC_NAME)/-/
-PKG_HASH:=06ac7a8e2e6012577d2f4b043af766bf28a1d3e2a0d50e46629dab4f0bb65104
-PKG_SOURCE_SUBDIR:=$(PKG_SRC_NAME)-$(PKG_VERSION)
-
-PKG_BUILD_DEPENDS:=node/host
-PKG_BUILD_FLAGS:=no-mips16
-PKG_BUILD_PARALLEL:=0
-
-PKG_LICENSE:=Apache-2.0
-PKG_LICENSE_FILES:=LICENSE
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/node-cylon/default
- SUBMENU:=Node.js
- SECTION:=lang
- CATEGORY:=Languages
- TITLE:=CylonJS - $(1)
- URL:=https://www.npmjs.org/package/cylon-firmata
- DEPENDS:=+node +node-npm $(2)
-endef
-
-define Package/node-cylon
- $(call Package/node-cylon/default,Core)
-endef
-
-define Package/node-cylon-i2c
- $(call Package/node-cylon/default,I2C,+node-cylon)
-endef
-
-define Package/node-cylon-gpio
- $(call Package/node-cylon/default,GPIO,+node-cylon)
-endef
-
-define Package/node-cylon-firmata
- $(call Package/node-cylon/default,Firmata,+node-cylon-gpio +node-cylon-i2c +node-arduino-firmata)
-endef
-
-define Package/node-cylon/description
- JavaScript Robotics, By Your Command Next generation robotics framework with support for 36 different platforms Get Started
-endef
-
-TAR_OPTIONS+= --strip-components 1
-TAR_CMD=$(HOST_TAR) -C $(1) $(TAR_OPTIONS)
-
-NODEJS_CPU:=$(subst powerpc,ppc,$(subst aarch64,arm64,$(subst x86_64,x64,$(subst i386,ia32,$(ARCH)))))
-TMPNPM:=$(shell mktemp -u XXXXXXXXXX)
-
-TARGET_CFLAGS+=$(FPIC)
-TARGET_CPPFLAGS+=$(FPIC)
-
-NPM_FLAGS:= \
- $(MAKE_VARS) \
- $(MAKE_FLAGS) \
- npm_config_arch=$(NODEJS_CPU) \
- npm_config_target_arch=$(NODEJS_CPU) \
- npm_config_build_from_source=true \
- npm_config_nodedir=$(STAGING_DIR)/usr/ \
- npm_config_prefix=$(PKG_INSTALL_DIR)/usr/ \
- npm_config_cache=$(TMP_DIR)/npm-cache-$(TMPNPM) \
- npm_config_tmp=$(TMP_DIR)/npm-tmp-$(TMPNPM)
-
-define Build/Compile
- $(NPM_FLAGS) npm i -g --production $(PKG_BUILD_DIR)
- $(NPM_FLAGS) npm i --production --prefix=$(PKG_BUILD_DIR) --target_arch=$(NODEJS_CPU) --prefer-dedupe
- rm -rf $(TMP_DIR)/npm-tmp-$(TMPNPM)
- rm -rf $(TMP_DIR)/npm-cache-$(TMPNPM)
-endef
-
-define Package/node-cylon/install
- $(INSTALL_DIR) $(1)/usr/lib/node/cylon
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/cylon-firmata/node_modules/cylon/* $(1)/usr/lib/node/cylon/
-endef
-
-define Package/node-cylon-i2c/install
- $(INSTALL_DIR) $(1)/usr/lib/node/cylon-i2c
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/cylon-firmata/node_modules/cylon-i2c/* $(1)/usr/lib/node/cylon-i2c/
-endef
-
-define Package/node-cylon-gpio/install
- $(INSTALL_DIR) $(1)/usr/lib/node/cylon-gpio
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/cylon-firmata/node_modules/cylon-gpio/* $(1)/usr/lib/node/cylon-gpio/
-endef
-
-define Package/node-cylon-firmata/install
- $(INSTALL_DIR) $(1)/usr/lib/node/cylon-firmata
- $(CP) $(PKG_BUILD_DIR)/{package.json,LICENSE,*.md} \
- $(1)/usr/lib/node/cylon-firmata/
- $(CP) $(PKG_BUILD_DIR)/{docs,examples,*.js} \
- $(1)/usr/lib/node/cylon-firmata/
- $(CP) $(PKG_BUILD_DIR)/{lib,spec} \
- $(1)/usr/lib/node/cylon-firmata/
-endef
-
-$(eval $(call BuildPackage,node-cylon))
-$(eval $(call BuildPackage,node-cylon-i2c))
-$(eval $(call BuildPackage,node-cylon-gpio))
-$(eval $(call BuildPackage,node-cylon-firmata))
+++ /dev/null
---- a/package.json
-+++ b/package.json
-@@ -41,7 +41,8 @@
- },
-
- "dependencies": {
-- "firmata": ">= 0.8.0",
-- "cylon": "^1.3.0"
-+ "cylon": "^1.3.0",
-+ "cylon-gpio": "0.30.1",
-+ "cylon-i2c": "0.26.1"
- }
- }
+++ /dev/null
-#
-# Copyright (C) 2015 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NPM_NAME:=node-hid
-PKG_NAME:=$(PKG_NPM_NAME)
-PKG_VERSION:=2.1.1
-PKG_RELEASE:=2
-
-PKG_SOURCE:=$(PKG_NPM_NAME)-$(PKG_VERSION).tgz
-PKG_SOURCE_URL:=https://registry.npmjs.org/$(PKG_NPM_NAME)/-/
-PKG_HASH:=6c1f05935215feed4e8d2f4aecf31abbad8fa783d252b0bd6041ed2f2e96e9ba
-
-PKG_BUILD_DEPENDS:=node/host
-PKG_BUILD_FLAGS:=no-mips16
-PKG_BUILD_PARALLEL:=0
-
-PKG_LICENSE:=MIT or X11
-PKG_LICENSE_FILES:=
-
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/nls.mk
-
-define Package/node-hid
- SUBMENU:=Node.js
- SECTION:=lang
- CATEGORY:=Languages
- TITLE:=Node.js package to access HID devices
- URL:=https://www.npmjs.com/package/node-hid
- DEPENDS:=+node +node-npm +libusb-1.0 +libudev $(ICONV_DEPENDS)
-endef
-
-define Package/node-hid/description
- Node.js package to access HID devices
-endef
-
-TAR_OPTIONS+= --strip-components 1
-TAR_CMD=$(HOST_TAR) -C $(1) $(TAR_OPTIONS)
-
-NODEJS_CPU:=$(subst powerpc,ppc,$(subst aarch64,arm64,$(subst x86_64,x64,$(subst i386,ia32,$(ARCH)))))
-TMPNPM:=$(shell mktemp -u XXXXXXXXXX)
-
-TARGET_CFLAGS+=$(FPIC) -I$(STAGING_DIR)/usr/include/libusb-1.0
-TARGET_LDFLAGS+=$(if $(ICONV_FULL),-liconv)
-
-NPM_FLAGS=$(MAKE_VARS) \
- $(MAKE_FLAGS) \
- npm_config_arch=$(NODEJS_CPU) \
- npm_config_target_arch=$(NODEJS_CPU) \
- npm_config_build_from_source=true \
- npm_config_nodedir=$(STAGING_DIR)/usr/ \
- npm_config_prefix=$(PKG_INSTALL_DIR)/usr/ \
- npm_config_cache=$(TMP_DIR)/npm-cache-$(TMPNPM) \
- npm_config_tmp=$(TMP_DIR)/npm-tmp-$(TMPNPM)
-
-define Build/Compile
- $(NPM_FLAGS) npm i -g --production $(PKG_BUILD_DIR) --ignore-scripts
- GYP_DEFINES='driver="hidraw"' \
- $(NPM_FLAGS) npm i --production --prefix=$(PKG_BUILD_DIR) --target_arch=$(NODEJS_CPU) --prefer-dedupe
- rm -rf $(TMP_DIR)/npm-tmp-$(TMPNPM)
- rm -rf $(TMP_DIR)/npm-cache-$(TMPNPM)
-endef
-
-define Package/node-hid/install
- $(INSTALL_DIR) $(1)/usr/lib/node/$(PKG_NPM_NAME)
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/$(PKG_NPM_NAME)/{package.json,*.md,*.js} \
- $(1)/usr/lib/node/$(PKG_NPM_NAME)/
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/$(PKG_NPM_NAME)/{node_modules,src} \
- $(1)/usr/lib/node/$(PKG_NPM_NAME)/
- $(INSTALL_DIR) $(1)/usr/lib/node/$(PKG_NPM_NAME)/build/Release
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/$(PKG_NPM_NAME)/build/Release/HID*.node \
- $(1)/usr/lib/node/$(PKG_NPM_NAME)/build/Release/
- $(INSTALL_DIR) $(1)/usr/bin
- $(LN) ../lib/node/$(PKG_NPM_NAME)/src/show-devices.js $(1)/usr/bin/hid-showdevices
-endef
-
-$(eval $(call BuildPackage,node-hid))
+++ /dev/null
---- a/hidapi/linux/hid.c
-+++ b/hidapi/linux/hid.c
-@@ -24,6 +24,7 @@
- /* C */
- #include <stdio.h>
- #include <string.h>
-+#include <stdarg.h>
- #include <stdlib.h>
- #include <locale.h>
- #include <errno.h>
+++ /dev/null
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NPM_NAME:=homebridge
-PKG_NAME:=node-$(PKG_NPM_NAME)
-PKG_VERSION:=1.2.4
-PKG_RELEASE:=2
-
-PKG_SOURCE:=$(PKG_NPM_NAME)-$(PKG_VERSION).tgz
-PKG_SOURCE_URL:=https://registry.npmjs.org/$(PKG_NPM_NAME)/-/
-PKG_HASH:=f91ab0058707a0498d97d87f45f19682065f80660fac942e0985caf9bb205f2a
-
-PKG_BUILD_DEPENDS:=node/host
-PKG_BUILD_FLAGS:=no-mips16
-PKG_BUILD_PARALLEL:=0
-
-PKG_LICENSE:=ISC Apache-2.0
-PKG_LICENSE_FILES:=LICENSE
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/node-homebridge
- SUBMENU:=Node.js
- SECTION:=lang
- CATEGORY:=Languages
- TITLE:=Node.js HomeKit Server
- URL:=https://www.npmjs.org/package/homebridge
- DEPENDS:=+node +node-npm
- USERID:=homebridge:homebridge
-endef
-
-define Package/node-homebridge/description
- Homebridge is a lightweight Node.js server you can run on your home network that emulates the iOS HomeKit API
- *** You need to install avahi-nodbus-daemon or avahi-dbus-daemon or umdns or mdnsd package. ***
-endef
-
-TAR_OPTIONS+= --strip-components 1
-TAR_CMD=$(HOST_TAR) -C $(1) $(TAR_OPTIONS)
-
-NODEJS_CPU:=$(subst powerpc,ppc,$(subst aarch64,arm64,$(subst x86_64,x64,$(subst i386,ia32,$(ARCH)))))
-TMPNPM:=$(shell mktemp -u XXXXXXXXXX)
-
-TARGET_CFLAGS+=$(FPIC)
-TARGET_CPPFLAGS+=$(FPIC)
-
-NPM_FLAGS=$(MAKE_VARS) \
- $(MAKE_FLAGS) \
- npm_config_arch=$(NODEJS_CPU) \
- npm_config_target_arch=$(NODEJS_CPU) \
- npm_config_build_from_source=true \
- npm_config_nodedir=$(STAGING_DIR)/usr/ \
- npm_config_prefix=$(PKG_INSTALL_DIR)/usr/ \
- npm_config_cache=$(TMP_DIR)/npm-cache-$(TMPNPM) \
- npm_config_tmp=$(TMP_DIR)/npm-tmp-$(TMPNPM)
-
-define Build/Compile
- $(NPM_FLAGS) npm i -g --production $(PKG_BUILD_DIR)
- $(NPM_FLAGS) npm i --production --prefix=$(PKG_BUILD_DIR) --target_arch=$(NODEJS_CPU) --prefer-dedupe
- npm install -g $(PKG_BUILD_DIR)
- rm -rf $(TMP_DIR)/npm-tmp-$(TMPNPM)
- rm -rf $(TMP_DIR)/npm-cache-$(TMPNPM)
-endef
-
-define Package/node-homebridge/install
- $(INSTALL_DIR) $(1)/usr/lib/node/$(PKG_NPM_NAME)
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/$(PKG_NPM_NAME)/{*.json,*.md} \
- $(1)/usr/lib/node/$(PKG_NPM_NAME)/
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/$(PKG_NPM_NAME)/{node_modules,lib} \
- $(1)/usr/lib/node/$(PKG_NPM_NAME)/
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/$(PKG_NPM_NAME)/{LICENSE,bin} \
- $(1)/usr/lib/node/$(PKG_NPM_NAME)/
- $(INSTALL_DIR) $(1)/usr/bin
- $(LN) ../lib/node/$(PKG_NPM_NAME)/bin/homebridge $(1)/usr/bin/homebridge
- $(INSTALL_DIR) $(1)/etc/init.d
- $(INSTALL_BIN) ./files/homebridge.init $(1)/etc/init.d/homebridge
-endef
-
-$(eval $(call BuildPackage,node-homebridge))
+++ /dev/null
-#!/bin/sh /etc/rc.common
-
-START=98
-USE_PROCD=1
-
-start_service() {
- [ -d /usr/share/homebridge ] || {
- mkdir -m 0755 -p /usr/share/homebridge
- chmod 0700 /usr/share/homebridge
- chown homebridge:homebridge /usr/share/homebridge
- }
- procd_open_instance
- procd_set_param command /usr/bin/homebridge -U /usr/share/homebridge
- procd_set_param user homebridge
- procd_set_param stdout 1
- procd_set_param stderr 1
- procd_close_instance
-}
+++ /dev/null
---- a/lib/pluginManager.js
-+++ b/lib/pluginManager.js
-@@ -324,6 +324,7 @@ class PluginManager {
- else {
- this.searchPaths.add("/usr/local/lib/node_modules");
- this.searchPaths.add("/usr/lib/node_modules");
-+ this.searchPaths.add("/usr/lib/node");
- this.searchPaths.add(child_process_1.execSync("/bin/echo -n \"$(npm --no-update-notifier -g prefix)/lib/node_modules\"").toString("utf8"));
- }
- }
+++ /dev/null
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NPM_SCOPE:=serialport
-PKG_NPM_NAME:=bindings
-PKG_NAME:=node-$(PKG_NPM_SCOPE)-$(PKG_NPM_NAME)
-PKG_VERSION:=9.0.4
-PKG_RELEASE:=2
-
-PKG_SOURCE:=$(PKG_NPM_NAME)-$(PKG_VERSION).tgz
-PKG_SOURCE_URL:=https://registry.npmjs.org/@$(PKG_NPM_SCOPE)/$(PKG_NPM_NAME)/-/
-PKG_HASH:=aec200860bd175e4b14b4ab1aa56a5f750172b6c8e20ccb234846206395848d4
-
-PKG_BUILD_DEPENDS:=node/host
-PKG_BUILD_FLAGS:=no-mips16
-PKG_BUILD_PARALLEL:=0
-
-PKG_LICENSE:=MIT
-PKG_LICENSE_FILES:=LICENSE
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/node-serialport-bindings
- SUBMENU:=Node.js
- SECTION:=lang
- CATEGORY:=Languages
- TITLE:=SerialPort Bindings
- URL:=https://www.npmjs.com/package/@serialport/bindings
- DEPENDS:=+node
-endef
-
-define Package/node-serialport-bindings/description
- The Binding is how Node-SerialPort talks to the underlying system. By default, we auto detect Windows, Linux and OS X, and load the appropriate module for your system. You can assign SerialPort.Binding to any binding you like.
-endef
-
-TAR_OPTIONS+= --strip-components 1
-TAR_CMD=$(HOST_TAR) -C $(1) $(TAR_OPTIONS)
-
-NODEJS_CPU:=$(subst powerpc,ppc,$(subst aarch64,arm64,$(subst x86_64,x64,$(subst i386,ia32,$(ARCH)))))
-TMPNPM:=$(shell mktemp -u XXXXXXXXXX)
-
-TARGET_CFLAGS+=$(FPIC)
-TARGET_CPPFLAGS+=$(FPIC)
-
-NPM_FLAGS=$(MAKE_VARS) \
- $(MAKE_FLAGS) \
- npm_config_arch=$(NODEJS_CPU) \
- npm_config_target_arch=$(NODEJS_CPU) \
- npm_config_build_from_source=true \
- npm_config_nodedir=$(STAGING_DIR)/usr/ \
- npm_config_prefix=$(PKG_INSTALL_DIR)/usr/ \
- npm_config_cache=$(TMP_DIR)/npm-cache-$(TMPNPM) \
- npm_config_tmp=$(TMP_DIR)/npm-tmp-$(TMPNPM)
-
-define Build/Compile
- $(NPM_FLAGS) npm i -g --production $(PKG_BUILD_DIR) --ignore-scripts
- $(NPM_FLAGS) npm i --production --prefix=$(PKG_BUILD_DIR) --target_arch=$(NODEJS_CPU) --prefer-dedupe
- rm -rf $(TMP_DIR)/npm-tmp-$(TMPNPM)
- rm -rf $(TMP_DIR)/npm-cache-$(TMPNPM)
-endef
-
-define Package/node-serialport-bindings/install
- $(INSTALL_DIR) $(1)/usr/lib/node/@$(PKG_NPM_SCOPE)/$(PKG_NPM_NAME)
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/@$(PKG_NPM_SCOPE)/$(PKG_NPM_NAME)/{package.json,LICENSE,*.md} \
- $(1)/usr/lib/node/@$(PKG_NPM_SCOPE)/$(PKG_NPM_NAME)
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/@$(PKG_NPM_SCOPE)/$(PKG_NPM_NAME)/{node_modules,lib} \
- $(1)/usr/lib/node/@$(PKG_NPM_SCOPE)/$(PKG_NPM_NAME)
- $(INSTALL_DIR) $(1)/usr/lib/node/@$(PKG_NPM_SCOPE)/$(PKG_NPM_NAME)/build/Release
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/@$(PKG_NPM_SCOPE)/$(PKG_NPM_NAME)/build/Release/bindings.node \
- $(1)/usr/lib/node/@$(PKG_NPM_SCOPE)/$(PKG_NPM_NAME)/build/Release/
-endef
-
-$(eval $(call BuildPackage,node-serialport-bindings))
+++ /dev/null
-#
-# Copyright (C) 2014 Arduino LLC
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NPM_NAME:=serialport
-PKG_NAME:=node-$(PKG_NPM_NAME)
-PKG_VERSION:=9.0.4
-PKG_RELEASE:=2
-
-PKG_SOURCE:=$(PKG_NPM_NAME)-$(PKG_VERSION).tgz
-PKG_SOURCE_URL:=https://registry.npmjs.org/$(PKG_NPM_NAME)/-/
-PKG_HASH:=e19fe993ad16ae0e03fc42e24cfe4babf8fd90f8358e1885d5e216277dda1086
-
-PKG_BUILD_DEPENDS:=node/host
-PKG_BUILD_FLAGS:=no-mips16
-PKG_BUILD_PARALLEL:=0
-
-PKG_LICENSE:=MIT
-PKG_LICENSE_FILES:=LICENSE
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/node-serialport
- SUBMENU:=Node.js
- SECTION:=lang
- CATEGORY:=Languages
- TITLE:=Node.js package to access serial ports
- URL:=https://serialport.io/
- DEPENDS:=+node +node-npm +node-serialport-bindings
-endef
-
-define Package/node-serialport/description
- Node.js package to access serial ports for reading and writing OR Welcome your robotic JavaScript overlords. Better yet, program them!
-endef
-
-TAR_OPTIONS+= --strip-components 1
-TAR_CMD=$(HOST_TAR) -C $(1) $(TAR_OPTIONS)
-
-NODEJS_CPU:=$(subst powerpc,ppc,$(subst aarch64,arm64,$(subst x86_64,x64,$(subst i386,ia32,$(ARCH)))))
-TMPNPM:=$(shell mktemp -u XXXXXXXXXX)
-
-TARGET_CFLAGS+=$(FPIC)
-TARGET_CPPFLAGS+=$(FPIC)
-
-NPM_FLAGS=$(MAKE_VARS) \
- $(MAKE_FLAGS) \
- npm_config_arch=$(NODEJS_CPU) \
- npm_config_target_arch=$(NODEJS_CPU) \
- npm_config_build_from_source=true \
- npm_config_nodedir=$(STAGING_DIR)/usr/ \
- npm_config_prefix=$(PKG_INSTALL_DIR)/usr/ \
- npm_config_cache=$(TMP_DIR)/npm-cache-$(TMPNPM) \
- npm_config_tmp=$(TMP_DIR)/npm-tmp-$(TMPNPM)
-
-define Build/Compile
- $(NPM_FLAGS) npm i -g --production $(PKG_BUILD_DIR)
- $(NPM_FLAGS) npm i --production --prefix=$(PKG_BUILD_DIR) --target_arch=$(NODEJS_CPU) --prefer-dedupe
- rm -rf $(TMP_DIR)/npm-tmp-$(TMPNPM)
- rm -rf $(TMP_DIR)/npm-cache-$(TMPNPM)
-endef
-
-define Package/node-serialport/install
- $(INSTALL_DIR) $(1)/usr/lib/node/$(PKG_NPM_NAME)
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/$(PKG_NPM_NAME)/{package.json,LICENSE,*.md} \
- $(1)/usr/lib/node/$(PKG_NPM_NAME)/
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/$(PKG_NPM_NAME)/*.js \
- $(1)/usr/lib/node/$(PKG_NPM_NAME)/
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/$(PKG_NPM_NAME)/{node_modules,lib} \
- $(1)/usr/lib/node/$(PKG_NPM_NAME)/
-endef
-
-$(eval $(call BuildPackage,node-serialport))
+++ /dev/null
---- a/package.json
-+++ b/package.json
-@@ -46,7 +46,6 @@
- ],
- "dependencies": {
- "@serialport/binding-mock": "^9.0.2",
-- "@serialport/bindings": "^9.0.4",
- "@serialport/parser-byte-length": "^9.0.1",
- "@serialport/parser-cctalk": "^9.0.1",
- "@serialport/parser-delimiter": "^9.0.1",